package main

import "fmt"

//类型断言
//我想知道空接口接收的值得类型
func assign(a interface{}) {
	fmt.Printf("%T\n", a)
	T, ok := a.(string)
	if !ok {
		fmt.Println("猜错了")
	} else {
		fmt.Println("猜对了" + T)
	}

}

func assign2(a interface{}) {
	fmt.Printf("%T\n", a)
	switch t := a.(type) {
	case string:
		fmt.Printf("%v是string类型 \n", t)
	case int32:
		fmt.Printf("%v是char类型 \n", t)
	case int:
		fmt.Printf("%v是int类型 \n", t)
	case int64:
		fmt.Printf("%v是int64类型 \n", t)
	case bool:
		fmt.Printf("%v是bool类型 \n", t)
	}
}

func main() {
	assign(100)
	assign("wer")

	assign2(true)
	assign2(int64(32))
	assign2('c')
	fmt.Printf("字符'c'的十进制%d，原值%c\n", 'c', 'c')

	assign2('中')
}
